home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / docs.lha / hem / user / netnews.mss < prev    next >
Text File  |  1992-02-23  |  23KB  |  489 lines

  1. @comment{-*- Dictionary: /afs/cs/project/clisp/docs/hem/hem; Mode: spell; Package: Hemlock -*-}
  2.  
  3. @chap[The Hemlock Netnews Interface]
  4. @section[Introduction to Netnews in Hemlock]
  5.  
  6.  
  7. @hemlock provides a facility for reading bulletin boards through the
  8. NetNews Transfer Protocol (NNTP).  You can easily read Netnews, reply to
  9. news posts, post messages, etc.  The news reading interface is consistent
  10. with that of the @hemlock mailer, and most Netnews commands function in the
  11. same manner as their mailer counterparts.
  12.  
  13. Netnews can be read in one of two different modes.  The first mode, invoked
  14. by the @hid(Netnews) command, allows the user to read new messages in
  15. groups which the user has specified.  This method of reading netnews will
  16. track the highest numbered message in each newsgroup and only show new
  17. messages which have arrived since then.  The @hid(Netnews Browse) command
  18. invokes the other method of reading netnews.  This mode displays a list of
  19. all newsgroups, and the user may choose to read messages in any of them.
  20. By default, the news reader will not track the latest message read when
  21. browsing, and it will always display the last few messages.
  22.  
  23.  
  24. @section[Setting Up Netnews]
  25.  
  26. To start reading bulletin boards from @hemlock you probably need to create a
  27. file containing the newsgroups you want to read.
  28.  
  29. @defhvar[var "Netnews Group File", val {".hemlock-groups"}]
  30.    When you invoke the @hid(Netnews) command, @hemlock merges the value of
  31.    this variable with your home directory and looks there for a list of
  32.    groups (one per line) to read.
  33. @enddefhvar
  34.  
  35. @defhvar[var "Netnews Database File", val{".hemlock-netnews"}]
  36. When you invoke the @hid(Netnews) command, @hemlock merges the value of
  37. this variable with your home directory.  This file maintains a pointer to
  38. the highest numbered message read in each group in @hid(Netnews Group
  39. File).
  40. @enddefhvar
  41.  
  42. @defcom[com "List All Groups"]
  43.    When you invoke this command, @hemlock creates a buffer called
  44.    @hid(Netnews Groups) and inserts the names of all accessible Netnews
  45.    groups into it alphabetically.  You may find this useful if you choose to set
  46.    up your @hid(Netnews Group File) manually.
  47. @enddefcom
  48.  
  49. @defhvar[var "Netnews NNTP Server", val{"netnews.srv.cs.cmu.edu"}]
  50. This variable stores the host name of the machine which @hemlock will use
  51. as the NNTP server.
  52. @enddefhvar
  53.  
  54. @defhvar[var "Netnews NNTP Timeout Period", val{30}]
  55. This is the number of seconds @hemlock will wait trying to connect to the
  56. NNTP server.  If a connection is not made within this time period, the
  57. connection will time out and an error will be signalled.
  58. @enddefhvar
  59.  
  60. @subsection[News-Browse Mode]
  61.  
  62.    @hid(News-Browse) mode provides an easy method of adding groups to
  63.    your @hid(Netnews Group File).
  64.  
  65. @defcom[com "Netnews Browse"]
  66.    This command sets up a buffer in @hid{News-Browse} mode with all
  67.    available groups listed one per line.  Groups may be read or added
  68.    to your group file using various commands in this mode.
  69. @enddefcom
  70.  
  71. @defcom[com "Netnews Browse Add Group To File", stuff (bound to @bf[a] in @hid[News-Browse] mode)]
  72. @defcom1[com "Netnews Browse Pointer Add Group to File"]
  73. @hid(Netnews Browse Add Group to File) adds the group under the point to
  74. your group file, and @hid(Netnews Browse Pointer Add Group To File) adds
  75. the group under the mouse pointer without moving the point.
  76. @enddefcom
  77.  
  78. @defcom[com "Netnews Browse Read Group", stuff (bound to @bf[space] in @hid[News-Browse] mode)]
  79. @defcom1[com "Netnews Browse Pointer Read Group"]
  80. @hid(Netnews Browse Read Group) and @hid(Netnews Browse Pointer Read Group)
  81. read the group under the cursor and the group under the mouse pointer,
  82. respectively.  These commands neither use nor modify the contents of your
  83. @hid(Netnews Database File); they will always present the last few messages
  84. in the newsgroup, regardless of the last message read.  @hid(Netnews Browse
  85. Pointer Read Group) does not modify the position of the point.
  86. @enddefcom
  87.  
  88. @defcom[com "Netnews Quit Browse"]
  89.    This command exits @hid(News-Browse) mode.
  90. @enddefcom
  91.  
  92. The @hid(Next Line) and @hid(Previous Line) commands are conveniently bound to
  93. @bf[n] and @bf[p] in this mode.
  94.  
  95. @section[Starting Netnews]
  96.  
  97. Once your @hid(Netnews Group File) is set up, you may begin reading netnews.
  98.  
  99. @defcom[com "Netnews"]
  100.    This command is the main entry point for reading bulletin boards in
  101.    @hemlock.  Without an argument, the system looks for what bulletin boards to
  102.    read in the value of @hid(Netnews Group File) and reads each of them in
  103.    succession.  @hemlock keeps a pointer to the last message you read in each
  104.    of these groups in your @hid(Netnews Database File).  Bulletin boards may
  105.    be added to your @hid(Netnews Group File) manually or by using
  106.    the @hid(Netnews Browse) facility.  With an argument, @hemlock prompts the 
  107.    user for the name of a bulletin board and reads it.
  108. @enddefcom
  109.  
  110. @defcom[com "Netnews Look at Group"]
  111.    This command prompts for a group and reads it, ignoring the information
  112.    in your @hid(Netnews Database File).
  113. @enddefcom
  114.  
  115. When you read a group, @hemlock creates a buffer that contains important
  116. header information for the messages in that group.  There are four fields
  117. in each header, one each for the @i(date), @i(lines), @i(from), and
  118. @i(subject).  The @i(date) field shows when the message was sent, the
  119. @i(lines) field displays how long the message is in lines, the @i(from)
  120. field shows who sent the message, and the @i(subject) field displays the
  121. subject of this message.  If a field for a message is not available, @f(NA)
  122. will appear instead.  You may alter the length of each of these fields by
  123. modifying the following @hemlock variables:
  124.  
  125. @defhvar[var "Netnews Before Date Field Pad", val 1]
  126.    How many spaces should be inserted before the date in @hid(News-Headers)
  127.    buffers.
  128. @enddefhvar
  129.  
  130. @defhvar[var "Netnews Date Field Length", val 6]
  131. @defhvar1[var "Netnews Line Field Length", val 3]
  132. @defhvar1[var "Netnews From Field Length", val 20]
  133. @defhvar1[var "Netnews Subject Field Length", val 43]
  134.    These variables control how long the @i(date), @i(line), @i(from), and
  135.    @i(subject) fields should be in @hid{News-Headers} buffers.
  136. @enddefhvar
  137.  
  138. @defhvar[var "Netnews Field Padding", val 2]
  139.    How many spaces should be left between the Netnews @i(date), @i(from), 
  140.    @i(lines), and @i(subject) fields after padding to the required length.
  141. @enddefhvar
  142.  
  143. For increased speed, @hemlock only inserts headers for a subset of the
  144. messages in each group.  If you have never read a certain group, and the
  145. value of @hid(Netnews New Group Style) is @f(:from-end) (the default),
  146. @hemlock inserts some number of the last messages in the group, determined
  147. by the value of @hid(Netnews Batch Count).  If the value of @hid(Netnews
  148. New Group Style) is @f(:from-start), @hemlock will insert the first batch
  149. of messages in the group.  If you have read a group before, @hemlock will
  150. insert the batch of messages following the highest numbered message that
  151. you had read previously.
  152.  
  153. @defhvar[var "Netnews Start Over Threshold", val {350}]
  154.    If the number of new messages in a group exceeds the value of this
  155.    variable and @hid(Netnews New Group Style) is @f(:from-end), @hemlock asks
  156.    if you would like to start reading this group from the end.
  157. @enddefhvar
  158.  
  159. You may at any time go beyond the messages that are visible using the 
  160. @hid(Netnews Next Line), @hid(Netnews Previous Line),
  161. @hid(Netnews Headers Scroll Window Up), and
  162. @hid(Netnews Headers Scroll Down) commands in @hid(News-Headers) mode,
  163. or the @hid(Netnews Next Article) and @hid(Netnews Previous Article)
  164. commands in @hid(News-Message) mode.
  165.  
  166. @defhvar[var "Netnews Fetch All Headers", val {nil}]
  167. This variable determines whether Netnews will fetch all headers immediately
  168. upon entering a new group.
  169. @enddefhvar
  170.  
  171. @defhvar[var "Netnews Batch Count", val {50}]
  172.    This variable determines how many headers the Netnews facility will fetch
  173.    at a time.
  174. @enddefhvar
  175.  
  176. @defhvar[var "Netnews New Group Style", val {:from-end}]
  177. This variable determines what happens when you read a group that you have
  178. never read before.  When it is @f(:from-start), the @hid(Netnews) command
  179. will read from the beginning of a new group forward.  When it is @f(:from-end),
  180. the default, @hid(Netnews) will read the group from the end backward.
  181. @enddefhvar
  182.  
  183. @section[Reading Messages]
  184.  
  185. From a @hid{News-Headers} buffer, you may read messages, reply to messages
  186. via the @hemlock mailer, or reply to messages via post.  Some commands are
  187. also bound to ease getting from one header to another.
  188.  
  189. @defcom[com "Netnews Show Article", stuff (bound to @bf[space] in @hid{News-Headers} mode)]
  190. @defhvar1[var "Netnews Read Style", val {:multiple}]
  191. @defhvar1[var "Netnews Headers Proportion", val {0.25}]
  192. This command puts the body of the message header under the current point
  193. into a @hid{News-Message} buffer.  If the value of @hid(Netnews Read
  194. Style) is @f(:single), @hemlock changes to the @hid{News-Message}
  195. buffer.  If it is @f(:multiple), then @hemlock splits the current window
  196. into two windows, one for headers and one for message bodies.  The headers
  197. window takes up a proportion of the current window based on the value of
  198. @hid(Netnews Headers Proportion).  If the window displaying the
  199. @hid(News-Headers) buffer has already been split, and the message
  200. currently displayed in the @hid(News-Message) window is the same as the
  201. one under the current point, this command behaves just like @hid(Netnews
  202. Message Scroll Down).
  203. @enddefcom
  204.  
  205. @defhvar[var "Netnews Message Header Fields", val {nil}]
  206.    When this variable is @nil, all available fields are displayed in the
  207.    header of a message.  Otherwise, this variable should containt a list of
  208.    fields to include in message headers.  If an element of this
  209.    list is an atom, then it should be the string name of a field.  If it is
  210.    a cons, then the car should be the string name of a field, and the cdr
  211.    should be the length to which this field should be limited.  Any string
  212.    name is acceptable, and fields that do not exist are ignored.
  213. @enddefhvar   
  214.  
  215. @defcom[com "Netnews Show Whole Header", stuff (bound to @bf[w] in @hid{News-Headers} and @hid{News-Message} modes.)]
  216. This command displays the entire header for the message currently being
  217. read.  This is to undo the effects of @hid{Netnews Message Header Fields}
  218. for the current message.
  219. @enddefcom
  220.  
  221. @defcom[com "Netnews Next Line", stuff (bound to @bf[C-n] and @bf[Downarrow] in @hid{News-Headers} mode)]
  222. @defhvar1[var "Netnews Last Header Style", val {:next-headers}]
  223. This command moves the current point to the next line.  If you are on the
  224. last visible message, and there are more in the current group, headers for
  225. these messages will be inserted.  If you are on the last header and there
  226. are no more messages in this group, then @hemlock will take some action
  227. based on the value of @hid(Netnews Last Header Style).  If the value of
  228. this variable is @f(:feep), @hemlock feeps you indicating there are no
  229. more messages.  If the value is @f(:next-headers), @hemlock reads in the
  230. headers for the next group in your @hid(Netnews Group File).  If the value
  231. is @f(:next-article), @hemlock goes on to the next group and shows you
  232. the first unread message.
  233. @enddefcom
  234.                      
  235. @defcom[com "Netnews Previous Line", stuff (bound to @bf[C-p] and @bf[Uparrow] in @hid{News-Headers} mode)]
  236. This command moves the current point to the previous line.  If you are on
  237. the first visible header, and there are more previous messages, @hemlock
  238. inserts the headers for these messages.
  239. @enddefcom
  240.  
  241. @defcom[com "Netnews Headers Scroll Window Down", stuff (bound to @bf[C-v] in @hid{News-Headers} mode)]
  242. @defcom1[com "Netnews Headers Scroll Window Up", stuff (bound to @bf[M-v] in @hid{News-Headers} mode)]
  243.    These commands scroll the headers window up or down one screenfull.  If the
  244.    end of the buffer is visible, @hemlock inserts the next batch of headers.
  245. @enddefcom
  246.  
  247. @defcom[com "Netnews Next Article", stuff (bound to @bf[n] in @hid{News-Message} and @hid{News-Headers} modes)]
  248. @defcom1[com "Netnews Previous Article", stuff (bound to @bf[p] in @hid{News-Message} and @hid{News-Headers} modes)]
  249.    These commands insert the next or previous message into a message buffer.
  250. @enddefcom
  251.  
  252. @defcom[com "Netnews Message Scroll Down", stuff (bound to @bf[space] in @hid{News-Message} mode)]
  253. @defhvar1[var "Netnews Scroll Show Next Message", val {t}]
  254. If the end of the current message is visible, @hemlock feeps the user if
  255. the value of @hid(Netnews Scroll Show Next Message) is non-@nil, or it
  256. inserts the next message into this message buffer if that variable is @nil.
  257. If the end of the message is not visible, then @hemlock shows the next
  258. screenfull of the current message.
  259. @enddefcom
  260.  
  261. @defcom[com "Netnews Message Quit", stuff (bound to @bf[q] in @hid{News-Message} mode)]
  262.    This command deletes the current message buffer and makes the associated
  263.    @hid{News-Headers} buffer current.
  264. @enddefcom
  265.  
  266. @defcom[com "Netnews Goto Headers Buffer", stuff (bound to @bf[H-h] in @hid{News-Message} mode)]
  267.    This command, when invoked from a @hid(News-Message) buffer with an
  268.    associated @hid(News-Headers) buffer, places the associated 
  269.    @hid(News-Headers) buffer into the current window.
  270. @enddefcom
  271.  
  272. @defcom[com "Netnews Message Keep Buffer", stuff (bound to @bf[k] in @hid{News-Message} mode)]
  273.    By default, @hemlock uses one buffer to display all messages in a group,
  274.    one at a time.  This command tells @hemlock to keep the current message
  275.    buffer intact and start reading messages in another buffer.
  276. @enddefcom
  277.  
  278. @defcom[com "Netnews Select Message Buffer", stuff (bound to @bf[H-m] in @hid{News-Headers} and @hid{Post} modes.)]
  279.    In @hid{News-Headers} mode, this command selects the buffer
  280.    containing the last message read.  In @hid{Post} mode, it selects the
  281.    associated @hid{News-Message} buffer, if there is one.
  282. @enddefcom
  283.  
  284. @defcom[com "Netnews Append to File", stuff (bound to @bf[a] in @hid{News-Headers} and @hid{News-Message} modes.)]
  285. @defhvar1[var "Netnews Message File", val {"netnews-messages.txt"}]
  286. This command prompts for a file which the current message will be appended
  287. to.  The default file is the value of @hid(Netnews Message File) merged
  288. with your home directory.
  289. @enddefcom
  290.  
  291. @defcom[com "Netnews Headers File Message", stuff (bound to @bf[o] in @hid{News-Headers} mode)]
  292. This command prompts for a mail folder and files the message under the
  293. point into it.  If the folder does not exist, @hemlock will ask if it should
  294. be created.
  295. @enddefcom
  296.  
  297. @defcom[com "Netnews Message File Message", stuff (bound to @bf[o] in @hid{News-Message} mode)]
  298. This command prompts for a mail folder and files the current message there.
  299. If the folder does not exist, @hemlock will ask if it should be created.
  300. @enddefcom
  301.  
  302. @defcom[com "Fetch All Headers", stuff (bound to @bf[f] in @hid{Netnews Headers} mode)]
  303.    In a forward reading @hid(Netnews headers) buffer, this command inserts
  304.    all headers after the last visible one into the headers buffer.  If
  305.    @hemlock is reading this group backward, the system inserts all headers
  306.    before the first visible one into the headers buffer.
  307. @enddefcom
  308.  
  309. @defcom[com "Netnews Go to Next Group", stuff (bound to @bf[g] in @hid{News-Headers} and @hid{News-Message} modes.)]
  310. This command goes to the next group in your @hid(Netnews Group File).
  311. Before going on, it sets the group pointer in @hid(Netnews Database
  312. Filename) to the last message you read.  With an argument, the command does
  313. not modify the group pointer for the current group.
  314. @enddefcom
  315.  
  316. @defcom[com "Netnews Quit Starting Here", stuff (bound to @bf[.] in @hid{News-Headers} and @hid{News-Message} modes)]
  317.    This command goes to the next group in your @hid(Netnews Group File), 
  318.    setting the netnews pointer for this group to the message before the one
  319.    under the current point, so the next time you read this group, the message
  320.    indicated by the point will appear first.
  321. @enddefcom
  322.  
  323. @defcom[com "Netnews Group Punt Messages", stuff (bound to @bf[G] in @hid{News-Headers} mode)]
  324.    This command goes on to the next bulletin board in your group
  325.    file.  Without an argument, the system sets the pointer for the current
  326.    group to the last message.  With an argument, @hemlock sets the
  327.    pointer to the last visible message in the group.
  328. @enddefcom
  329.  
  330. @defcom[com "Netnews Exit", stuff (bound to @bf[q] in @hid{News-Headers} mode)]
  331. @defhvar1[var "Netnews Exit Confirm", val {t}]
  332.    This command cleans up and deletes the @hid(News-Headers) buffer and
  333.    all associated @hid(News-Message) buffers.  If the value of
  334.    @hid(Netnews Exit Confirm) is @nil, then @hemlock will not prompt before
  335.    exiting.
  336. @enddefcom
  337.  
  338. @section[Replying to Messages]
  339.  
  340. The @hemlock Netnews interface also provides an easy way of replying to
  341. messages through the @hemlock Mailer or via @hid{Post} mode.
  342.  
  343. @defcom[com "Netnews Reply to Sender"]
  344.    When you invoke this command, @hemlock creates a @hid(Draft) buffer and
  345.    tries to fill in the @i(to) and @i(subject) fields of the draft.  For
  346.    the @i(to) field, @hemlock looks at the @i(reply-to) field of the
  347.    message you are replying to, or failing that, the @i(from) field.  If
  348.    the @i(subject) field does not start with @f(Re:), @hemlock inserts this
  349.    string, signifying that this is a reply.
  350. @enddefcom
  351.  
  352. @defcom[com "Netnews Reply to Sender in Other Window", stuff (bound to @bf[r] in @hid{News-Headers} and @hid{News-Message}.)]
  353. This command splits the current window, placing the message you are
  354. replying to in the top window and a new @hid{Draft} buffer in the bottom
  355. one.  This command fills in the header fields in the same manner as
  356. @hid(Netnews Reply to Sender).
  357. @enddefcom
  358.  
  359. @defcom[com "Netnews Reply to Group"]
  360. This command creates a @hid{Post} buffer with the @i(newsgroups) field set
  361. to the current group and the @i(subject) field constructed in the same way
  362. as in @hid(Netnews Reply to Sender).
  363. @enddefcom
  364.  
  365. @defcom[com "Netnews Reply to Group in Other Window", stuff (bound to @bf[R] in @hid{News-Headers} and @hid{News-Message}.)]
  366.    This command splits the current window, placing the message you are
  367.    replying to in the top window and a new @hid{Post} buffer in the bottom
  368.    one.  This command will fill in the header fields in the same manner as
  369.    @hid(Netnews Reply to Group).
  370. @enddefcom
  371.  
  372. @defcom[com "Netnews Post Message", stuff (bound to @bf[C-x P])]
  373.    This command creates a @hid{Post} buffer.  If you are in a 
  374.    @hid(News-Headers) or @hid{News-Message} buffer, @hemlock fills in the
  375.    @i(newsgroups) field with the current group.
  376. @enddefcom
  377.  
  378. @defcom[com "Netnews Forward Message", stuff (bound to @bf[f] in @hid{News-Headers} and @hid{News-Message} modes.)]
  379. This command creates a @hid{Post} buffer.  If you are in a @hid{Netnews
  380. Headers} or @hid{News-Message} buffer, @hemlock will put the text of the
  381. current message into the buffer along with lines delimiting the forwarded
  382. message.
  383. @enddefcom
  384.  
  385. @defcom[com "Netnews Goto Post Buffer", stuff (bound to @bf[H-p] in @hid{News-Message} mode)]
  386.    This command, when invoked in a @hid(News-Message) or @hid(Draft) buffer
  387.    with an associated @hid(News-Headers) buffer, places the associated
  388.    @hid(News-Headers) buffer into the current window.
  389. @enddefcom
  390.  
  391. @defcom[com "Netnews Goto Draft Buffer", stuff (bound to @bf[H-d] in @hid{News-Message} mode)]
  392.    This command, when invoked in a @hid(News-Message) buffer with an 
  393.    associated @hid(Draft) buffer, places the @hid(Draft) buffer into the 
  394.    current window.
  395. @enddefcom
  396.  
  397. @section[Posting Messages]
  398.  
  399. @defcom[com "Netnews Deliver Post", stuff (bound to @bf[H-s] in @hid{Post} mode)]
  400. @defhvar1[var "Netnews Deliver Post Confirm", val "t"]
  401. This command delivers the contents of a @hid(Post) buffer to the NNTP
  402. server.  If @hid(Netnews Deliver Post Confirm) is @f(t), @hemlock will ask for
  403. confirmation before posting the message.  @hemlock feeps you if NNTP does
  404. not accept the message.
  405. @enddefcom
  406.  
  407. @defcom[com "Netnews Abort Post", stuff (bound to @bf[H-q] in @hid{Post} mode)]
  408.    This command deletes the current @hid(Post) buffer.
  409. @enddefcom
  410.  
  411.  
  412. As in the mailer, when replying to a message you can be excerpt sections of
  413. it using @hid(Insert Message Buffer) and @hid(Insert Message Region) in
  414. @hid(Post) and @hid(News-Message) modes, respectively.  You can also use
  415. these commands when replying to a message via mail in a @hid(Draft) buffer.
  416. In all cases, the same binding is used: @bf[H-y].
  417.  
  418. @newpage
  419. @section[Wallchart]
  420.  
  421. @tabclear
  422. @tabdivide(5)
  423.  
  424. @begin[format, spacing 1.5]
  425.  
  426.  
  427. @Begin[Center] @b[Global bindings:] @End[Center]
  428.  
  429. @hid[Netnews Post Message]@\@\@bf[C-x P]
  430.  
  431.  
  432. @Begin[Center] @b[News-Headers and News-Message modes bindings:] @End[Center]
  433.  
  434. @hid[Netnews Next Article]@\@\@\@bf[n]
  435. @hid[Netnews Previous Article]@\@\@bf[p]
  436. @hid[Netnews Go to Next Group]@\@\@bf[g]
  437. @hid[Netnews Group Punt Messages]@\@\@bf[G]
  438. @hid[List All Groups]@\@\@\@bf[l]
  439. @hid[Netnews Append to File]@\@\@bf[a]
  440. @hid[Netnews Forward Message]@\@\@bf[f]
  441. @hid[Netnews Reply to Sender in Other Window]@\@\@bf[r]
  442. @hid[Netnews Reply to Group in Other Window]@\@\@bf[R]
  443. @hid[Netnews Quit Starting Here]@\@\@bf[.]
  444.  
  445. @Begin[Center] @b[News-Headers mode bindings:] @End[Center]
  446.  
  447. @hid[Netnews Show Article]@\@\@bf[Space]
  448. @hid[Netnews Previous Line]@\@\@bf[C-p], @bf[Uparrow]
  449. @hid[Netnews Next Line]@\@\@\@bf[C-n], @bf[Downarrow]
  450. @hid[Netnews Headers Scroll Window Down]@\@\@bf[C-v]
  451. @hid[Netnews Headers Scroll Window Up]@\@\@bf[M-v]
  452. @hid[Netnews Select Message Buffer]@\@\@bf[H-m]
  453. @hid[Netnews Exit]@\@\@\@bf[q]
  454. @hid[Netnews Headers File Message]@\@\@bf[o]
  455.  
  456.  
  457. @Begin[Center] @b[News-Message mode bindings:] @End[Center]
  458.  
  459. @hid[Netnews Message Scroll Down]@\@\@bf[Space]
  460. @hid[Scroll Window Up]@\@\@\@bf[Backspace]
  461. @hid[Netnews Goto Headers Buffer]@\@\@bf[H-h], @bf[^]
  462. @hid[Netnews Message Keep Buffer]@\@\@bf[k]
  463. @hid[Netnews Message Quit]@\@\@bf[q]
  464. @hid[Netnews Message File Message]@\@\@bf[o]
  465. @hid[Netnews Goto Post Buffer]@\@\@bf[H-p]
  466. @hid[Netnews Goto Draft Buffer]@\@\@bf[H-d]
  467. @hid[Insert Message Region]@\@\@bf[H-y]
  468.  
  469.  
  470. @Begin[Center] @b[Post mode bindings:] @End[Center]
  471.  
  472. @hid[Netnews Select Message Buffer]@\@\@bf[H-m]
  473. @hid[Netnews Deliver Post]@\@\@bf[H-s]
  474. @hid[Netnews Abort Post]@\@\@\@bf[H-q]
  475. @hid[Insert Message Buffer]@\@\@bf[H-y]
  476.  
  477.  
  478. @Begin[Center] @b[News-Browse mode bindings:] @End[Center]
  479.  
  480. @hid[Netnews Quit Browse]@\@\@bf[q]
  481. @hid[Netnews Browse Add Group To File]@\@\@bf[a]
  482. @hid[Netnews Browse Read Group]@\@\@bf[Space]
  483. @hid[Next Line]@\@\@\@bf[n]
  484. @hid[Previous Line]@\@\@\@bf[p]
  485.  
  486.  
  487. @end[format]
  488. @tabclear
  489.